package com.note.common.utils.mail;

import com.note.common.config.MailConfig;
import com.note.common.utils.spring.SpringUtils;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;

import java.util.Date;
import java.util.Random;

/**
 * 邮件发送类
 */
public class MailUtil {

    /**
     * 生成 4位数的字符串
     * @return
     */
    public static String productCode(){
        StringBuilder codeBuilder = new StringBuilder();
        Random random = new Random();
        for(int i = 0; i < 4; i++){
            codeBuilder.append(random.nextInt(10));
        }
        return codeBuilder.toString();
    }



    /**
     * 普通邮件发送
     * @param toUserMail 发送给谁
     * @param sendMsg 发送的内容
     */
    public static void sendSimpleMail(String toUserMail, String sendMsg) {
        MailConfig mailConfig = SpringUtils.getBean(MailConfig.class);
        JavaMailSender javaMailSender = SpringUtils.getBean(JavaMailSender.class);
        // 构建一个邮件对象
        SimpleMailMessage message = new SimpleMailMessage();
        // 设置邮件主题
        message.setSubject("验证码信息");
        // 设置邮件发送者，这个跟application.yml中设置的要一致
        message.setFrom(mailConfig.getUsername());
        // 设置邮件接收者，可以有多个接收者，中间用逗号隔开，以下类似
        // message.setTo("10*****16@qq.com","12****32*qq.com");
        message.setTo(toUserMail);
        // 设置邮件抄送人，可以有多个抄送人
//        message.setCc("12****32*qq.com");
//        // 设置隐秘抄送人，可以有多个
//        message.setBcc("7******9@qq.com");
        // 设置邮件发送日期
        message.setSentDate(new Date());
        // 设置邮件的正文
        message.setText(sendMsg);
        // 发送邮件
        javaMailSender.send(message);
    }
}
